home *** CD-ROM | disk | FTP | other *** search
/ Item MB Quick & Easy 2.0 / Item MB Quick & Easy 2.0.iso / mbfacad / eaitpro8.lsp < prev    next >
Lisp/Scheme  |  1998-03-15  |  9KB  |  197 lines

  1. ;---------Unterfunktion zur Profilzeichnung 8er-Nut
  2. ;--------------------------------------------------------------------------
  3. ; Wird neues Profil erstellt, trage die Liste mit den Punkten der Quer-    
  4. ; linien ein (siehe erstes SETQ) und fⁿge eine entsprechende Zeile in der  
  5. ; ersten COND - Anweisung ein !!!!                                         
  6. ;                                                                          
  7. ; PROFIL mu▀ eine String entsprechend aus erster COND- Anweisung sein      
  8. ; EPKT   ist Einfⁿgepkt.                                                   
  9. ; LA     ist Laenge des Profils                                            
  10. ; WIN    ist Einfⁿgewinkel                                                 
  11. ; KRI    ist Konstruktionsrichtung                                         
  12. ;--------------------------------------------------------------------------
  13.  
  14. (defun EAITpro8 (PROFIL EPKT LA WIN KRI / SS1 LI LI1 LI2 LI3 LI4 LI5 LI6 LI7 LI8 LI9
  15.                                                LIN END1 WIZ N Z)
  16.                                
  17. ;--------Listen der Profil-Linien                               
  18.  
  19.        (setvar "OSMODE" 0)
  20.        (setq LI1 '(40)
  21.              LI2 '(80)
  22.              LI3 '(36 44 76 84 116 124 160)
  23.              LI4 '(16 24 40)
  24.              LI5 '(16 24 56 64 80)
  25.              LI6 '(16 24 56 64 96 104 136 144 160)
  26.              LI7 '(16 24 58)
  27.              LI8 '(17 32)
  28.              LI9 '(40)
  29.              LI10 '(16 24 56 64 96 104 118)
  30.              LI11 '(16 24 37.5 42.5 56 64 77.5 82.5 96 104 117.5 122.5 136 144 160)
  31.              LI12 '(160)
  32.              LI13 '(5.5 10.5 16)
  33.              LI14 '(5 13 18)
  34.              LI15 '(32)
  35.              LI16 '(4 14 18)
  36.              LI17 '(16)
  37.              LI18 '(16 24 56 64 80)
  38.              LI19 '(28)
  39.              LI20 '(16 24 56 64 96 104 120)
  40.              LI21 '(16 24 56.6 60.1 80)
  41.              LI22 '(2.5 5 6 9 11.5 28.5 31 34 35 37.5 40)
  42.              LI23 '(54.8)
  43.              LI24 '(39 42.5 45.25 54.8)
  44.              LI25 '(9.5 25.5 33.5 54.8)
  45.              LI26 '(38.5)
  46.              LI27 '(18.5 27.5 31.5 38.5)
  47.              LI28 '(4.1 20.1 28.1 44)
  48.              LI29 '(67.7)
  49.              LI30 '(48 53.5 56 67.7)
  50.              LI31 '(34.6 42.6 58.5)
  51.              LI32 '(80)
  52.              LI33 '(40 56 64 80)
  53.              LI34 '(2.5 4 36 37.5 40)
  54.              LI35 '(10 12.5 15 65 67.5 70 80)
  55.              LI36 '(10 12.5 15 26 54 65 67.5 70 80)
  56.              LI37 '(10 12.5 15 27.75 52.25 65 67.5 70 80)
  57.              LI38 '(18)
  58.              LI39 '(2 18)
  59.              LI40 '(2 5 7.5)
  60.              LI41 '(8.5 11.5 13.5 20)
  61.              LI42 '(2 4)
  62.              LI43 '(4)
  63.        )
  64.  
  65.        (cond ((= PROFIL "40x16")(setq LI LI1))
  66.              ((= PROFIL "80x16")(setq LI LI2))
  67.              ((= PROFIL "160x28")(setq LI LI3))
  68.              ((= PROFIL "40x40")(setq LI LI4))
  69.              ((= PROFIL "80x40")(setq LI LI5))
  70.              ((= PROFIL "160x40")(setq LI LI6))
  71.              ((= PROFIL "LAUF 6 D1")(setq LI LI7))
  72.              ((= PROFIL "LAUF 6 S1")(setq LI LI8))
  73.              ((= PROFIL "40x40-45")(setq LI LI9))
  74.              ((= PROFIL "LAUF 25 S1")(setq LI LI10))
  75.              ((= PROFIL "160x16s1")(setq LI LI11))
  76.              ((= PROFIL "160x16s2")(setq LI LI12))
  77.              ((= PROFIL "160x16s3")(setq LI LI13))
  78.              ((= PROFIL "32x18s1")(setq LI LI14))
  79.              ((= PROFIL "32x18s2")(setq LI LI15))
  80.              ((= PROFIL "32x18s3")(setq LI LI16))
  81.              ((= PROFIL "40x16-2")(setq LI LI17))
  82.              ((= PROFIL "80x80")(setq LI LI18))
  83.              ((= PROFIL "160x28-2")(setq LI LI19))
  84.              ((= PROFIL "120x40")(setq LI LI20))
  85.              ((= PROFIL "80x80-45")(setq LI LI21))
  86.              ((= PROFIL "VERB")(setq LI LI22))
  87.              ((= PROFIL "R40/80-45-1")(setq LI LI23))
  88.              ((= PROFIL "R40/80-45-2")(setq LI LI24))
  89.              ((= PROFIL "R40/80-45-3")(setq LI LI25))
  90.              ((= PROFIL "R40/80-30-1")(setq LI LI26))
  91.              ((= PROFIL "R40/80-30-2")(setq LI LI27))
  92.              ((= PROFIL "R40/80-30-3")(setq LI LI28))
  93.              ((= PROFIL "R40/80-60-1")(setq LI LI29))
  94.              ((= PROFIL "R40/80-60-2")(setq LI LI30))
  95.              ((= PROFIL "R40/80-60-3")(setq LI LI31))
  96.              ((= PROFIL "R40/80-90-1")(setq LI LI32))
  97.              ((= PROFIL "R40/80-90-2")(setq LI LI33))
  98.              ((= PROFIL "ABDECK 32")(setq LI LI34))
  99.              ((= PROFIL "STAND1")(setq LI LI35))
  100.              ((= PROFIL "STAND2")(setq LI LI36))
  101.              ((= PROFIL "STANDK")(setq LI LI37))
  102.              ((= PROFIL "WINKEL1")(setq LI LI38))
  103.              ((= PROFIL "WINKEL2")(setq LI LI39))
  104.              ((= PROFIL "WSL AL E")(setq LI LI40))
  105.              ((= PROFIL "WSL AL")(setq LI LI41))
  106.              ((= PROFIL "ABDECKP 32x4")(setq LI LI42))
  107.              ((= PROFIL "GLEITLEISTE")(setq LI LI43))
  108.      );cond
  109.  
  110. ;---------Bedingungen fⁿr Quadranten    
  111.  
  112.        (cond ((AND (<= WIN KRI)(< KRI (+ WIN(/ Pi 2))));I. Quadrant
  113.                        (setq WIN WIN                         ;
  114.                              WIZ (+ WIN (/ Pi 2))            ; 
  115.                        )                                     ;
  116.                 )                                         ;I. Quadrant
  117.  
  118.                 ((AND (<= (+ WIN(/ Pi 2)) KRI)(< KRI (+ WIN Pi))); II. Quadrant 
  119.                        (setq WIN (+ WIN Pi)                         ;
  120.                              WIZ (- WIN (/ Pi 2))                   ;
  121.                        )                                            ;
  122.                  )                                                ; II. Quadrant
  123.  
  124.                 ((AND (<= (+ WIN Pi) KRI)(< KRI (+ WIN (/(* Pi 3)2)))); III.Quadrant
  125.                        (setq WIN (+ WIN Pi)                              ;
  126.                              WIZ (+ WIN (/ Pi 2))                        ;
  127.                        )                                                 ;
  128.                  )                                                     ; III. Quadrant
  129.                 (T                                                  ; IV. Quadrant
  130.                        (setq WIN WIN                                     ;
  131.                              WIZ (- WIN (/ Pi 2))                        ;
  132.                        )                                                 ;
  133.                 )                                                   ; IV. Quadrant
  134.        );cond            
  135.        (setq WINFO (/ (+ WIN WIZ) 2))     ;Winkel fⁿr MB-INFO - Punkt
  136.  
  137. ;-----------Zeichnen der Profil-Grundlinie    
  138.  
  139.        (command EAITlay EAITlse "EAIT50" "")
  140.        (setq END1 (polar EPKT WIN LA))    
  141.        (command EAITlin EPKT END1 "")
  142.        (setq LIN (entlast)
  143.              SS1 (ssadd (entlast))
  144.              Z -1
  145.        )    
  146.  
  147. ;-----------Zeichnen des restlichen Profils    
  148.  
  149.        (foreach N LI
  150.                (command EAITkop LIN "" EPKT (polar EPKT WIZ N))
  151.                (setq SS1 (ssadd (entlast) SS1))
  152.                (setq Z (1+ Z))
  153.        );foreach
  154.     
  155.        (command EAITlin EPKT (polar EPKT WIZ (nth Z LI)) "") ;Seiten-Linie d. Profils
  156.        (setq SS1 (ssadd (entlast) SS1))
  157.        (command EAITlin END1 (polar END1 WIZ (nth Z LI)) "") ;Seiten-Linie d. Profils
  158.        (setq SS1 (ssadd (entlast) SS1))
  159.  
  160.        (if (= LI LI9)
  161.                (progn
  162.                        (command EAITlay EAITlse "EAIT25" "")
  163.                        (command EAITlin (polar EPKT WIZ 12)(polar END1 WIZ 12) "")
  164.                        (setq SS1 (ssadd (entlast) SS1))
  165.                )
  166.        )
  167.        (if (= LI LI21)
  168.                (progn
  169.                        (command EAITlay EAITlse "EAIT25" "")
  170.                        (command EAITlin (polar EPKT WIZ 40)(polar END1 WIZ 40) "")
  171.                        (command EAITlin (polar EPKT WIZ 62.8)(polar END1 WIZ 62.8) "")
  172.                        (setq SS1 (ssadd (entlast) SS1))
  173.                )
  174.        )
  175.        (if (= LI LI40)
  176.                (progn
  177.                        (command EAITlay EAITlse "EAITstpg" "")
  178.                        (command EAITlin (polar EPKT WIZ 3.5)(polar END1 WIZ 3.5) "")
  179.                        (setq SS1 (ssadd (entlast) SS1))
  180.                )
  181.        )
  182.        (if (= LI LI41)
  183.                (progn
  184.                        (command EAITlay EAITlse "EAITstpg" "")
  185.                        (command EAITlin (polar EPKT WIZ 10)(polar END1 WIZ 10) "")
  186.                        (setq SS1 (ssadd (entlast) SS1))
  187.                )
  188.        )
  189.  
  190. ;-----------Block bilden    
  191.  
  192.        (setq BName (EAITbnr))
  193.        (command EAITblo BName EPKT SS1 ""
  194.                 EAITege BName EPKT "" "" "" )
  195.  
  196. );defun EAITpro8
  197.